package com.xunchi.haichuan.data.dao;

import java.util.Date;
import java.util.List;

import com.xunchi.haichuan.data.model.Data;

/**
 * 作者：kongxb<br>
 * 模块名称：数据管理模块<br>
 * 功能描述：数据存取接口<br>
 * 维护记录：2009.11.27, kongxb 创建该接口
 */
public interface DataDAO {

	/**
	 * 根据 id 获取数据
	 * 
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public Data getByID(String id) throws Exception;

	/**
	 * 插入数据
	 * 
	 * @param entity
	 */
	public void saveEntity(Data entity);

	/**
	 * 更新数据
	 * 
	 * @param entity
	 */
	public void updateEntity(Data entity);

	/**
	 * 删除数据
	 * 
	 * @param entity
	 */
	public void deleteEntity(Data entity);

	/**
	 * 获取最新数据
	 * 
	 * @param start
	 * @param limit
	 * @return
	 */
	public List<Data> getLatestDatas(int start, int limit);

	/**
	 * 搜索数据
	 * 
	 * @param instance
	 * @param beginDate
	 * @param endDate
	 * @return
	 */
	public List<Data> search(Data instance, Date beginDate, Date endDate);

	/**
	 * 搜索数据
	 * 
	 * @param instance
	 * @param beginDate
	 * @param endDate
	 * @param start
	 * @param limit
	 * @return
	 */
	public List<Data> search(Data instance, Date beginDate, Date endDate, int start, int limit);

	/**
	 * 按照数据名称查找数据是否存在
	 * 
	 * @param dataName
	 * @return true 该数据存在, false 该数据不存在
	 * @throws Exception
	 */
	public boolean checkDataName(String dataName) throws Exception;

}
